/*
 * Queue.h
 *
 *  Created on: Jul 12, 2012
 *      Author: luporini
 */

#ifndef QUEUE_H_
#define QUEUE_H_

template <class T>
class TupleQueue {
public:
	inline TupleQueue() {}
	virtual void push ( T* ) = 0;
	virtual T* pop () = 0;

	inline ~TupleQueue() {}
};

template <class T>
class SocketQueue: TupleQueue<T> {
public:
	inline SocketQueue() : TupleQueue<T> () {}
	void push ( T* );
	T* pop ();
	inline ~SocketQueue() {}
};

template <class T>
class FFQueue: TupleQueue<T> {
public:
	inline FFQueue() : TupleQueue<T> () {}
	// inline void push() {ff_queue.push()}
	// inline void pop() {ff_queue.pop()}
	inline ~FFQueue() {}
};

#endif /* QUEUE_H_ */
